package br.com.wagnerfull.precoimovel.cadastro;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.content.ContentValues;
import br.com.wagnerfull.precoimovel.dao.EntidadeMobileEntity;

public class ParametroCalculo extends EntidadeMobileEntity {

	/**
	 * 
	 */
	private static final long serialVersionUID = 7704124923132577538L;
	private Integer id;
	private String descricao;
	private String discriminacao;
	private List<ItemParametroCalculo> listaParametroCalculo;

	private Configuracao configuracao;

	public Configuracao getConfiguracao() {
		return configuracao;
	}

	public void setConfiguracao(Configuracao configuracao) {
		this.configuracao = configuracao;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public String getDiscriminacao() {
		return discriminacao;
	}

	public void setDiscriminacao(String discriminacao) {
		this.discriminacao = discriminacao;
	}

	public List<ItemParametroCalculo> getListaParametroCalculo() {
		return listaParametroCalculo;
	}

	public void setListaParametroCalculo(
			List<ItemParametroCalculo> listaParametroCalculo) {
		this.listaParametroCalculo = listaParametroCalculo;
	}

	public Double getMontantePercentual() {
		if (listaParametroCalculo != null && listaParametroCalculo.size() > 0) {
			BigDecimal somaDecimal = new BigDecimal(0);
			for (ItemParametroCalculo item : listaParametroCalculo) {
				if (item.getTaxa().getFlagPercentual().equals(Boolean.TRUE)) {
					somaDecimal = somaDecimal.add(new BigDecimal(item
							.getValor()));
				}
			}
			return Double.valueOf(somaDecimal.doubleValue());
		}
		return 0D;
	}

	public Double getMontanteValor() {
		if (listaParametroCalculo != null && listaParametroCalculo.size() > 0) {
			BigDecimal somaDecimal = new BigDecimal(0);
			for (ItemParametroCalculo item : listaParametroCalculo) {
				if (item.getTaxa().getFlagPercentual().equals(Boolean.FALSE)) {
					somaDecimal = somaDecimal.add(new BigDecimal(item
							.getValor()));
				}
			}
			return Double.valueOf(somaDecimal.doubleValue());
		}
		return 0D;
	}

	public ParametroCalculo() {
		super();
	}

	public ParametroCalculo(String descricao) {
		this.descricao = descricao;
	}

	public ParametroCalculo(Integer id, String descricao) {
		this(descricao);
		this.id = id;
	}

	public ParametroCalculo(Integer id, String descricao, String discriminacao) {
		this(id, descricao);
		this.discriminacao = discriminacao;
	}

	@Override
	public Map<String, String> getMapeamento() {
		Map<String, String> retorno = new HashMap<String, String>();
		retorno.put("id", "id");
		retorno.put("descricao", "descricao");
		retorno.put("discriminacao", "discriminacao");
		return retorno;
	}

	@Override
	public ContentValues getContentValues() {
		ContentValues contentValues = new ContentValues();
		contentValues.put("id", this.id);
		contentValues.put("descricao", this.descricao);
		contentValues.put("discriminacao", this.discriminacao);
		return contentValues;
	}

	@Override
	public String toString() {
		return "parametro_calculo";
	}

}
